package com.dingding.action;

import com.dingding.bean.databean.request.ReqAddUserRoute;
import com.dingding.bean.databean.request.ReqBackPassword;
import com.dingding.bean.databean.request.ReqBannerShow;
import com.dingding.bean.databean.request.ReqBannerShowByType;
import com.dingding.bean.databean.request.ReqCalculateDistance;
import com.dingding.bean.databean.request.ReqCancelOrder;
import com.dingding.bean.databean.request.ReqCheckUpdate;
import com.dingding.bean.databean.request.ReqCompetitiveOrder;
import com.dingding.bean.databean.request.ReqConfirmArrival;
import com.dingding.bean.databean.request.ReqCouponInfo;
import com.dingding.bean.databean.request.ReqCouponStore;
import com.dingding.bean.databean.request.ReqDeleteUserRoute;
import com.dingding.bean.databean.request.ReqDeposit;
import com.dingding.bean.databean.request.ReqDriverAuth;
import com.dingding.bean.databean.request.ReqEvaluateDriver;
import com.dingding.bean.databean.request.ReqExchange;
import com.dingding.bean.databean.request.ReqGetDriverInfoAndLevel;
import com.dingding.bean.databean.request.ReqGetIsAttendActivity;
import com.dingding.bean.databean.request.ReqGetLastUserOrder;
import com.dingding.bean.databean.request.ReqGetMapShowRoute;
import com.dingding.bean.databean.request.ReqGetNearbyOrderList;
import com.dingding.bean.databean.request.ReqGetNearbyUserList;
import com.dingding.bean.databean.request.ReqGetOrderInfo;
import com.dingding.bean.databean.request.ReqGetPushUerInfo;
import com.dingding.bean.databean.request.ReqGetSysMessage;
import com.dingding.bean.databean.request.ReqGetTellPhoneValidate;
import com.dingding.bean.databean.request.ReqGetTokenByRongCloud;
import com.dingding.bean.databean.request.ReqGetUserBalanceList;
import com.dingding.bean.databean.request.ReqGetUserDepositList;
import com.dingding.bean.databean.request.ReqGetUserDetailById;
import com.dingding.bean.databean.request.ReqGetUserIntegralDetail;
import com.dingding.bean.databean.request.ReqGetUserOrder;
import com.dingding.bean.databean.request.ReqGetUserWallet;
import com.dingding.bean.databean.request.ReqGoToPay;
import com.dingding.bean.databean.request.ReqPassengerPay;
import com.dingding.bean.databean.request.ReqPayOrder;
import com.dingding.bean.databean.request.ReqPublishAboutCar;
import com.dingding.bean.databean.request.ReqQueryOrderResult;
import com.dingding.bean.databean.request.ReqReDriverAuth;
import com.dingding.bean.databean.request.ReqResetAddress;
import com.dingding.bean.databean.request.ReqResetPassword;
import com.dingding.bean.databean.request.ReqScanInfo;
import com.dingding.bean.databean.request.ReqSetDepositPassword;
import com.dingding.bean.databean.request.ReqSyncDriverAuth;
import com.dingding.bean.databean.request.ReqUpdateUserInfo;
import com.dingding.bean.databean.request.ReqUpdateUserRoute;
import com.dingding.bean.databean.request.ReqUploadImage;
import com.dingding.bean.databean.request.ReqUserLocation;
import com.dingding.bean.databean.request.ReqUserLogin;
import com.dingding.bean.databean.request.ReqUserLoginByNum;
import com.dingding.bean.databean.request.ReqUserLogout;
import com.dingding.bean.databean.request.ReqUserRegister;
import com.dingding.bean.databean.request.ReqUserRouteList;
import com.dingding.bean.databean.request.ReqUserRouteStatus;
import com.dingding.bean.databean.request.ReqUserpushSetting;
import com.dingding.bean.databean.request.ReqValidateTellPhoneNum;
import com.dingding.bean.databean.request.ReqVerifyDepositNum;
import com.dingding.bean.databean.request.ReqVerifyDepositPwd;
import com.dingding.bean.databean.request.ReqVerifyLoginPwd;
import com.dingding.bean.databean.request.ReqgetUserpush;
import com.dingding.bean.databean.response.DataResponse;
import com.dingding.common.core.util.JSONUtil;
import com.dingding.facade.user.dto.SyncDriverAuthDTO;
import com.dingding.service.BaseService;

/**
 * 
 * @ClassName: RequestDispatch
 * @Description: 请求模块调度类
 * @author cheshaowei
 * @date 2015-9-17 下午09:18:14
 */
public class RequestDispatch extends BaseService {

	/**
	 * @Title: getCellPhoneValidateNum @Description: 获取手机验证码 @author
	 * cheshaowei @return void @throws
	 */
	public void getTellPhoneValidate(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetTellPhoneValidate reqGetTellPhoneValidate = JSONUtil.parseObject(requestData,
				ReqGetTellPhoneValidate.class);

		// 生成验证码保存数据库，并且向客户端发送短信
		super.phoneValidateService.getTellPhoneValidate(reqGetTellPhoneValidate, dataResponse);

	}

	/**
	 * @Title: validateCellPhoneNum @Description: 手机验证码校验 @author
	 * cheshaowei @return void @throws
	 */
	public void validateTellPhoneNum(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqValidateTellPhoneNum validateTellPhoneNum = JSONUtil.parseObject(requestData, ReqValidateTellPhoneNum.class);

		// 验证手机验证码是否正确
		super.phoneValidateService.validateTellPhoneNum(validateTellPhoneNum, dataResponse);
	}

	/**
	 * @Title: userRegion @Description:用户注册 @author cheshaowei @return
	 * void @throws
	 */
	@Deprecated
	public void userRegion(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserRegister reqUserRegister = JSONUtil.parseObject(requestData, ReqUserRegister.class);

		// 执行注册
		super.userLoginService.userRegister(reqUserRegister, dataResponse);

	}

	/**
	 * @Title: driverAuth 
	 * @Description: 认证车主 
	 * @author cheshaowei 
	 * 修改人：冯硕楠
	 * 修改原因：添加出租车业务需求，认证车主时添加是否为出租
	 * 修改时间：2016年6月30日13:28:04
	 * 修改版本：V2.3
	 */
	public void driverAuth(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqDriverAuth reqDriverAuth = JSONUtil.parseObject(requestData, ReqDriverAuth.class);

		// 提交车主认证
		super.vehicleinfoService.driverAuth(reqDriverAuth, dataResponse);
	}

	/**
	 * @Title: userLogin @Description: 用户登录 @author cheshaowei @return
	 * void @throws
	 */
	@Deprecated
	public void userLogin(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserLogin reqUserLogin = JSONUtil.parseObject(requestData, ReqUserLogin.class);

		// 用户登录
		super.userLoginService.userLogin(reqUserLogin, dataResponse);
	}

	/**
	 * @Title: userLoginByNum 
	 * @Description: 用户登录 
	 * @author Li Yi 
	 * 修改人：冯硕楠
	 * 修改原因：添加出租车业务需求，需要判断车主为私家车还是出租车
	 * 修改时间：2016年6月30日13:28:04
	 * 修改版本：V2.3
	 */
	public void userLoginByNum(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserLoginByNum reqUserLoginByNum = JSONUtil.parseObject(requestData, ReqUserLoginByNum.class);

		// 用户登录
		super.userLoginService.userLoginByNum(reqUserLoginByNum, dataResponse);
	}

	/**
	 * @Title: userLogout @Description: 用户注销 @author lijinchao @return
	 * void @throws
	 */
	public void userLogout(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserLogout reqUserLogout = JSONUtil.parseObject(requestData, ReqUserLogout.class);

		// 执行注销
		super.userLoginService.userLogout(reqUserLogout, dataResponse);
	}

	/**
	 * @Title: uploadImage @Description: 上传头像 @author cheshaowei @return
	 * void @throws
	 */
	public void uploadImage(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUploadImage reqUploadImage = JSONUtil.parseObject(requestData, ReqUploadImage.class);
		// 执行头像上传
		super.userDetailService.uploadImage(reqUploadImage, dataResponse);
	}

	/**
	 * @Title: getUserWallet @Description: 获取用户钱包 @author cheshaowei @return
	 * void @throws
	 */
	public void getUserWallet(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetUserWallet reqGetUserWallet = JSONUtil.parseObject(requestData, ReqGetUserWallet.class);

		// 获取用户钱包信息
		super.userAccountService.getUserWallet(reqGetUserWallet, dataResponse);

	}

	/**
	 * @Title: getUserBalanceList @Description: 获取用户钱包（账户）明细 @author
	 * cheshaowei @return void @throws
	 */
	public void getUserBalanceList(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetUserBalanceList reqGetUserBalanceList = JSONUtil.parseObject(requestData, ReqGetUserBalanceList.class);

		// 获取用户账户明细
		super.userAccountDetailService.getUserBalanceList(reqGetUserBalanceList, dataResponse);
	}

	/**
	 * @Title: getUserDepositList @Description: 获取用户提现明细 @author
	 * lijinchao @return void @throws
	 */
	public void getUserDepositList(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetUserDepositList reqGetUserDepositList = JSONUtil.parseObject(requestData, ReqGetUserDepositList.class);

		// 获取用户提现明细
		super.userAccountDetailService.getUserDepositList(reqGetUserDepositList, dataResponse);
	}

	/**
	 * @Title: deposit @Description: 提现 @author cheshaowei @return void @throws
	 */
	public void deposit(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqDeposit reqDeposit = JSONUtil.parseObject(requestData, ReqDeposit.class);

		// 提交提现申请
		super.userAccountService.userDeposit(reqDeposit, dataResponse);

	}

	/**
	 * @Title: getUserOrder @Description: 获取我的订单 @author cheshaowei @return
	 * void @throws
	 */
	public void getUserOrder(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetUserOrder reqGetUserOrder = JSONUtil.parseObject(requestData, ReqGetUserOrder.class);

		// 获取我的订单列表
		super.userOrderService.getUserOrder(reqGetUserOrder, dataResponse);

	}

	/**
	 * @Title: updateUserInfo @Description: 更新用户信息 @author cheshaowei @return
	 * void @throws
	 */
	public void updateUserInfo(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUpdateUserInfo reqUpdateUserInfo = JSONUtil.parseObject(requestData, ReqUpdateUserInfo.class);

		// 更新用户个人信息
		super.userDetailService.updateUserInfo(reqUpdateUserInfo, dataResponse);

	}

	/**
	 * @Title: getSysMessage @Description: 获取系统消息 @author cheshaowei @return
	 * void @throws
	 */
	public void getSysMessage(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetSysMessage reqGetSysMessage = JSONUtil.parseObject(requestData, ReqGetSysMessage.class);
		// 获取系统消息
		super.systemNewsService.getSysMessage(reqGetSysMessage, dataResponse);

	}

	/**
	 * @Title: resetPassword @Description: 重置密码 @author cheshaowei @return
	 * void @throws
	 */
	public void resetPassword(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqResetPassword reqResetPassword = JSONUtil.parseObject(requestData, ReqResetPassword.class);

		// 重置密码
		super.userLoginService.resetPassword(reqResetPassword, dataResponse);

	}

	/**
	 * @Title: resetAddress @Description: 地址设置 @author cheshaowei @return
	 * void @throws
	 */
	public void resetAddress(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqResetAddress reqResetAddress = JSONUtil.parseObject(requestData, ReqResetAddress.class);

		// 设置地址
		super.userDetailService.resetAddress(reqResetAddress, dataResponse);
	}

	/**
	 * @Title: backPassword @Description: 找回密码 @author cheshaowei @return
	 * void @throws
	 */
	public void backPassword(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqBackPassword backPassword = JSONUtil.parseObject(requestData, ReqBackPassword.class);

		// 找回用户登录密码
		super.userLoginService.backPassword(backPassword, dataResponse);

	}

	/**
	 * @Title: setDepositPassword @Description: 设置提现密码 @author
	 * cheshaowei @return void @throws
	 */
	public void setDepositPassword(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqSetDepositPassword depositPassword = JSONUtil.parseObject(requestData, ReqSetDepositPassword.class);

		// 设置提现密码
		super.userLoginService.setDepositPassword(depositPassword, dataResponse);
	}

	/**
	 * @Title: verifyLoginPwd @Description: 首次提现校验登录密码 @author yhq @return void
	 * 返回类型 @throws
	 */
	public void verifyLoginPwd(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqVerifyLoginPwd reqVerifyLoginPwd = JSONUtil.parseObject(requestData, ReqVerifyLoginPwd.class);

		// 首次提现校验登录密码
		super.userLoginService.verifyLoginPwd(reqVerifyLoginPwd, dataResponse);

	}

	/**
	 * @Title: verifyLoginNum @Description: 首次提现校验验证码登录 @author Li Yi @return
	 * void 返回类型 @throws
	 */
	public void verifyLoginNum(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqVerifyDepositNum reqVerifyLoginNum = JSONUtil.parseObject(requestData, ReqVerifyDepositNum.class);

		// 首次提现校验登录密码
		super.userLoginService.verifyDepositNum(reqVerifyLoginNum, dataResponse);

	}

	/**
	 * @Title: verifyDepositPwd @Description: 提现时校验提现密码 @author yhq @return void
	 * 返回类型 @throws
	 */
	public void verifyDepositPwd(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqVerifyDepositPwd reqVerifyDepositPwd = JSONUtil.parseObject(requestData, ReqVerifyDepositPwd.class);

		// 提现时校验提现密码
		super.userLoginService.verifyDepositPwd(reqVerifyDepositPwd, dataResponse);

	}

	/**
	 * @Title: scanUserInfo @Description: 查看对方用户信息 @author yhq @return void
	 * 返回类型 @throws
	 */
	public void scanUserInfo(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqScanInfo reqScanInfo = JSONUtil.parseObject(requestData, ReqScanInfo.class);

		// 查看对方用户信息
		super.userDetailService.scanUserInfo(reqScanInfo, dataResponse);
	}

	/**
	 * @Title: publishAboutCar @Description: 发布订单 @author cheshaowei @return
	 * void @throws
	 */
	public void publishAboutCar(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqPublishAboutCar reqPublishAboutCar = JSONUtil.parseObject(requestData, ReqPublishAboutCar.class);
		// 发布订单
		super.userOrderTService.publishAboutCar(reqPublishAboutCar, dataResponse);

	}

	/**
	 * @Title: calculateDistance @Description: 计算距离价格 @author lijinchao @return
	 * void @throws
	 */
	public void calculateDistance(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqCalculateDistance reqCalculateDistance = JSONUtil.parseObject(requestData, ReqCalculateDistance.class);

		// 根据两点的经纬度计算距离和搭车价格
		super.userOrderTService.calculateDistance(reqCalculateDistance, dataResponse);
	}

	/**
	 * @Title: getNearbyUserList @Description: 获取附近用户列表 @author yhq @return
	 * void @throws
	 */
	public void getNearbyUserList(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetNearbyUserList reqGetNearbyUserList = JSONUtil.parseObject(requestData, ReqGetNearbyUserList.class);

		// 获取附近乘客列表
		super.userOrderTService.getNearbyUserList(reqGetNearbyUserList, dataResponse);
	}

	/**
	 * @Title: competitiveOrder @Description: 用户抢单(乘客/车主) @author yhq @return
	 * void @throws
	 */
	public void competitiveOrder(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqCompetitiveOrder reqCompetitiveOrder = JSONUtil.parseObject(requestData, ReqCompetitiveOrder.class);

		// 执行抢单
		super.userOrderTService.competitiveOrder(reqCompetitiveOrder, dataResponse);
	}

	/**
	 * @Title: passengerPay @Description: 乘客支付 @author yhq @return void
	 * 返回类型 @throws
	 * 
	 */
	@Deprecated
	public void passengerPay(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqPassengerPay reqPassengerPay = JSONUtil.parseObject(requestData, ReqPassengerPay.class);

		// 乘客支付
		super.userOrderService.passengerPay(reqPassengerPay, dataResponse);

	}

	/**
	 * @Title: orderPay @Description: 乘客支付订单 @author fengshuonan @return void
	 * 返回类型 @throws
	 */
	public void orderPay(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqPayOrder reqPassengerPay = JSONUtil.parseObject(requestData, ReqPayOrder.class);

		// 乘客支付
		super.userOrderService.payOrder(reqPassengerPay, dataResponse);

	}

	/**
	 * @Title: queryOrderResult @Description: 查询实际支付结果 @author
	 * fengshuonan @return void @throws
	 * 修改人：冯硕楠
	 * 修改原因：订单业务新增出租车订单，所以要加上出租车订单状态的判断
	 * 修改时间：2016年7月6日19:00:04
	 * 修改版本：V2.3
	 */
	public void queryOrderResult(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqQueryOrderResult reqWePayOrderQuery = JSONUtil.parseObject(requestData, ReqQueryOrderResult.class);

		// 查询订单状态
		super.userOrderService.queryOrderResult(reqWePayOrderQuery, dataResponse);
	}

	/**
	 * @Title: confirmArrival @Description: 乘客确认到达 @author cheshaowei @return
	 * void @throws
	 */
	public void confirmArrival(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqConfirmArrival reqConfirmArrival = JSONUtil.parseObject(requestData, ReqConfirmArrival.class);

		// 乘客确认到达
		super.userOrderService.confirmArrival(reqConfirmArrival, dataResponse);
	}

	/**
	 * @Title: cancelOrder @Description: 乘客取消订单 @author cheshaowei @return
	 * void @throws
	 */
	public void cancelOrder(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqCancelOrder reqCancelOrder = JSONUtil.parseObject(requestData, ReqCancelOrder.class);

		// 用户取消订单
		super.userOrderService.cancelOrder(reqCancelOrder, dataResponse);

	}

	/**
	 * @Title: getLastUserOrder @Description: 查看最近订单 @author yhq @return void
	 * 返回类型 @throws
	 */
	public void getLastUserOrder(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetLastUserOrder reqGetLastUserOrder = JSONUtil.parseObject(requestData, ReqGetLastUserOrder.class);

		// 查看最近订单
		super.userOrderService.latelyOrder(reqGetLastUserOrder, dataResponse);
	}

	/**
	 * @Title: getOrderOutTime @Description: 获取系统时间 @param requestData @param
	 * dataResponse @author lijinchao @return void @throws
	 */
	public void getServiceSystemTime(String requestData, DataResponse dataResponse) {

		// 响应系统时间
		super.systemNewsService.getServiceSystemTime(dataResponse);

	}

	/**
	 * @Title: getBanner @Description: 获取banner @author cheshaowei @return
	 * void @throws
	 */
	public void getBanner(String requestData, DataResponse dataResponse) {

		// 获取banner
		super.bannerService.getBanner(dataResponse);

	}

	/**
	 * @Title: checkUpdate @Description: 检查更新 @author yhq @return void
	 * 返回类型 @throws
	 */
	public void checkUpdate(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqCheckUpdate reqCheckUpdate = JSONUtil.parseObject(requestData, ReqCheckUpdate.class);

		// 检查更新数据
		super.systemNewsService.checkUpdate(reqCheckUpdate, dataResponse);
	}

	/**
	 * @Title: getPushUerInfo @Description: 抢单推送失败获取用户信息 @author
	 * lijinchao @return void @throws
	 */
	public void getPushUerInfo(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetPushUerInfo reqGetPushUerInfo = JSONUtil.parseObject(requestData, ReqGetPushUerInfo.class);

		// 抢单推送失败获取用户信息
		super.userDetailService.getPushUserInfo(reqGetPushUerInfo, dataResponse);
	}

	/**
	 * @Title: reDriverAuth @Description: 重新进行车主认证 @author lijinchao @return
	 * void @throws
	 */
	public void reDriverAuth(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqReDriverAuth reqReDriverAuth = JSONUtil.parseObject(requestData, ReqReDriverAuth.class);

		// 重新进行车主认证申请
		super.vehicleinfoService.reDriverAuth(reqReDriverAuth, dataResponse);
	}

	/**
	 * @Title: userCurrentLocation @Description: 实时定位用户当前位置 @author
	 * yuHaiQing @return void 返回类型 @throws
	 */
	public void userCurrentLocation(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserLocation reqUserLocation = JSONUtil.parseObject(requestData, ReqUserLocation.class);

		// 实时定位用户当前位置
		super.userOrderTService.userCurrentLocation(reqUserLocation, dataResponse);

	}

	/**
	 * 
	 * @Title: getMapShowRoute
	 * @Description: 根据经纬度调用高德地图获取地图显示路线
	 * @return void 返回类型
	 * @author CHEHAUNBO
	 * @since v1.8
	 * 
	 */
	public void getMapShowRoute(String requestData, DataResponse dataResponse) {

		ReqGetMapShowRoute reqGetMapShowRoute = JSONUtil.parseObject(requestData, ReqGetMapShowRoute.class);

		super.userOrderTService.getMapShowRoute(reqGetMapShowRoute, dataResponse);

	}

	/**
	 * @Title: addUserRoute @Description: 添加用户路线 @author Li Yi @return void
	 * 返回类型 @throws
	 */
	public void addUserRoute(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqAddUserRoute reqAddUserRoute = JSONUtil.parseObject(requestData, ReqAddUserRoute.class);

		// 添加用户路线
		super.userRouteService.addUserRoute(reqAddUserRoute, dataResponse);

	}

	/**
	 * @Title: updateUserRoute @Description: 更新用户路线 @author Li Yi @return void
	 * 返回类型 @throws
	 */
	public void updateUserRoute(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqUpdateUserRoute reqUpdateUserRoute = JSONUtil.parseObject(requestData, ReqUpdateUserRoute.class);

		// 更新用户路线
		super.userRouteService.updateUserRoute(reqUpdateUserRoute, dataResponse);

	}

	/**
	 * @Title: deleteUserRoute @Description: 删除用户路线 @author Li Yi @return void
	 * 返回类型 @throws
	 */
	public void deleteUserRoute(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqDeleteUserRoute reqDeleteUserRoute = JSONUtil.parseObject(requestData, ReqDeleteUserRoute.class);

		// 删除用户路线
		super.userRouteService.deleteUserRoute(reqDeleteUserRoute, dataResponse);

	}

	/**
	 * @Title: getUserRouteList @Description: 获取用户路线 @author Li Yi @return void
	 * 返回类型 @throws
	 */
	public void getUserRouteList(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqUserRouteList reqUserRouteList = JSONUtil.parseObject(requestData, ReqUserRouteList.class);
		// 获取用户路线
		super.userRouteService.getUserRouteList(reqUserRouteList, dataResponse);
	}

	/**
	 * @Title: isRouteEnable @Description:判断用户状态 @author Li Yi @return void
	 * 返回类型 @throws
	 */
	public void isRouteEnable(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqUserRouteStatus reqUserRouteStatus = JSONUtil.parseObject(requestData, ReqUserRouteStatus.class);
		// 当前路线状态
		super.userRouteService.isRouteEnable(reqUserRouteStatus, dataResponse);

	}

	@Override
	public void setStatus(DataResponse dataResponse, int status) {

	}

	/**
	 * @Title: updateUserpushSetting
	 * @Description:设置路线推送
	 * @author Li Yi
	 * @return void 返回类型
	 */
	public void updateUserpushSetting(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqUserpushSetting reqUserpushSetting = JSONUtil.parseObject(requestData, ReqUserpushSetting.class);

		// 设置路线推送
		super.userRouteService.updateUserpushSetting(reqUserpushSetting, dataResponse);

	}

	/**
	 * @Title: getUserpushSetting
	 * @Description:获取设置路线推送
	 * @author Li Yi
	 * @return void 返回类型
	 */
	public void getUserpushSetting(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqgetUserpush reqgetUserpush = JSONUtil.parseObject(requestData, ReqgetUserpush.class);

		// 获取推送设置信息
		super.userRouteService.getUserpushSetting(reqgetUserpush, dataResponse);

	}

	/**
	 * @Title: getOrderInfo
	 * @Description:根据订单Id获取用户信息
	 * @author Li Yi
	 * @return void 返回类型
	 */
	public void getOrderInfo(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqGetOrderInfo reqGetOrderInfo = JSONUtil.parseObject(requestData, ReqGetOrderInfo.class);

		// 获取推送设置信息
		super.userOrderTService.getOrderInfoById(reqGetOrderInfo, dataResponse);

	}

	/**
	 * @Title: getOrderInfo
	 * @Description:根据用户Id获取优惠券列表
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void getCoupons(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqCouponInfo reqCouponInfo = JSONUtil.parseObject(requestData, ReqCouponInfo.class);

		// 获取推送设置信息
		super.couponActivityService.getUserCouponList(reqCouponInfo, dataResponse);
	}

	/**
	 * @Title: getOrderInfo
	 * @Description:根据用户Id获取优惠券列表
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void getCouponList(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqCouponInfo reqCouponInfo = JSONUtil.parseObject(requestData, ReqCouponInfo.class);

		// 获取推送设置信息
		super.couponActivityService.getUserCoupons(reqCouponInfo, dataResponse);
	}
	
	/**
	 * @Title: getOrderInfo
	 * @Description:根据用户优惠券Id获取优惠券详情
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void couponInfo(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqCouponInfo reqCouponInfo = JSONUtil.parseObject(requestData, ReqCouponInfo.class);

		// 获取推送设置信息
		super.couponActivityService.getUserCouponInfo(reqCouponInfo, dataResponse);
	}

	/**
	 * @Title: getOrderInfo
	 * @Description:激活优惠券
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void activationCouponInfo(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqCouponInfo reqCouponInfo = JSONUtil.parseObject(requestData, ReqCouponInfo.class);

		// 获取推送设置信息
		super.couponActivityService.activateCoupon(reqCouponInfo, dataResponse);
	}

	/**
	 * @Title: getCityStores
	 * @Description:获取城市门店列表
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void getCityStores(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqCouponStore reqCouponStore = JSONUtil.parseObject(requestData, ReqCouponStore.class);

		// 获取推送设置信息
		super.couponActivityService.getCouponStores(reqCouponStore, dataResponse);
	}

	/**
	 * @Title: getNearbyOrderList
	 * @Description:获取附近列表(乘客列表/车主列表)(V1.9.0)
	 * @author YHQ
	 * @return void 返回类型
	 */
	public void getNearbyOrderList(String requestData, DataResponse dataResponse) {
		// 将客户端JSON数据转换成服务端数据bean
		ReqGetNearbyOrderList reqGetNearbyOrderList = JSONUtil.parseObject(requestData, ReqGetNearbyOrderList.class);

		// 获取附近乘客列表
		super.userOrderTService.getNearbyOrderList(reqGetNearbyOrderList, dataResponse);
	}

	/**
	 * @Title: goToPay @Description:获取订单状态与用户钱包（点击去支付按钮时）(V1.9.0) @author
	 * fengshuonan @return void @throws
	 * 修改人：冯硕楠
	 * 修改原因：订单业务新增出租车订单，所以要加上出租车订单状态的判断
	 * 修改时间：2016年7月6日19:00:04
	 * 修改版本：V2.3
	 */
	public void goToPay(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGoToPay goToPay = JSONUtil.parseObject(requestData, ReqGoToPay.class);

		super.userOrderTService.goToPay(goToPay, dataResponse);
	}

	/**
	 * @Title: getBannerList
	 * @Description: 获取Banner列表
	 * @author yuHaiQing
	 * @return void 返回类型
	 */
	public void getBannerList(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqBannerShow reqBannerShow = JSONUtil.parseObject(requestData, ReqBannerShow.class);

		super.bannerInfoService.getBannerList(reqBannerShow, dataResponse);

	}

	/**
	 * @Title: getBannerListByType
	 * @Description: 根据模块类型获取Banner列表
	 * @author yuHaiQing
	 * @return void 返回类型
	 */
	public void getBannerListByType(String requestData, DataResponse dataResponse){
		
		// 将客户端JSON数据转换成服务端数据bean
		ReqBannerShowByType reqBannerShowByType = JSONUtil.parseObject(requestData, ReqBannerShowByType.class);

		super.bannerInfoService.getBannerListByType(reqBannerShowByType, dataResponse);
		
	}
	
	/**
	 * @Title: getActivityList
	 * @Description: 获取Activity列表
	 * @author yuHaiQing
	 * @return void 返回类型
	 */
	public void getActivityList(String requestData, DataResponse dataResponse) {

		super.activityService.getActivityList(dataResponse);

	}

	/**
	 * @Title: isAttendActivity
	 * @Description: 当日是否已经签到
	 * @author yuHaiQing
	 * @return void 返回类型
	 */
	public void getisAttendActivity(String requestData, DataResponse dataResponse) {

		// 将客户端JSON数据转换成服务端数据bean
		ReqGetIsAttendActivity reqGetIsAttendActivity = JSONUtil.parseObject(requestData, ReqGetIsAttendActivity.class);

		super.activityService.getisAttendActivity(reqGetIsAttendActivity,dataResponse);

	}
	
	/**
	 * @Description:同步车主认证状态
	 * @author fengshuonan
	 * @return void
	 * 修改人：冯硕楠
	 * 修改原因：添加出租车业务需求，需要判断车主为私家车还是出租车
	 * 修改时间：2016年6月30日13:28:04
	 * 修改版本：V2.3
	 */
	public void syncDriverAuth(String requestData, DataResponse dataResponse){
		
		//将客户端JSON数据转换成服务端数据bean
		ReqSyncDriverAuth reqGetIsAttendActivity = JSONUtil.parseObject(requestData, ReqSyncDriverAuth.class);
				
		SyncDriverAuthDTO syncDriverAuthDTO = super.userAuthFacade.syncDriverAuth(reqGetIsAttendActivity.getLoginId());
		
		super.packResponseBody(dataResponse, syncDriverAuthDTO);
	}

	/**
	 * @Title: getIntegralTransactionDetail 
	 * @Description: 获取积分交易明细列表
	 * @param     设定文件 
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getIntegralTransactionDetail(String requestData, DataResponse dataResponse){
		
		ReqGetUserIntegralDetail reqGetUserIntegralDetail = JSONUtil.parseObject(requestData, ReqGetUserIntegralDetail.class);
		
		super.iIntegralService.getUserIntegralDetail(reqGetUserIntegralDetail,dataResponse);
		
	}
	
	/**
	 * @Title: getTokenByRongCloud 
	 * @Description: 获取融云Token
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getTokenByRongCloud(String requestData, DataResponse dataResponse){
		
		ReqGetTokenByRongCloud reqGetTokenByRongCloud = JSONUtil.parseObject(requestData, ReqGetTokenByRongCloud.class);
		
		super.userDetailService.getTokenByRongCloud(reqGetTokenByRongCloud, dataResponse);
		
	}
	
	/**
	 * @Title: getUserDetailById 
	 * @Description:  获取用户昵称和头像
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getUserDetailById(String requestData, DataResponse dataResponse){
		
		ReqGetUserDetailById reqGetUserDetailById = JSONUtil.parseObject(requestData, ReqGetUserDetailById.class);
		
		super.userDetailService.getUserDetailById(reqGetUserDetailById, dataResponse);
	}
	
	
	/**
	 * @Title: getUserBaseInfoById 
	 * @Description:  获取用户基本信息
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void getUserBaseInfoById (String requestData, DataResponse dataResponse){
		
		ReqGetUserDetailById reqGetUserDetailById = JSONUtil.parseObject(requestData, ReqGetUserDetailById.class);
		
		super.userDetailService.getUserBaseInfoById(reqGetUserDetailById, dataResponse);
	}
	
	
	
	/**
	 * 
	 * @Title: getStarLevelInfo 
	 * @Description:  获取星级信息
	 * @author YHQ 
	 * @return void    返回类型
	 * 
	 */
	public void getStarLevelInfo(String requestData, DataResponse dataResponse){
		
		ReqGetDriverInfoAndLevel driverInfoAndLevel = JSONUtil.parseObject(requestData, ReqGetDriverInfoAndLevel.class);
		
		super.starLevelInfoService.getStarLevelInfos(driverInfoAndLevel,dataResponse);
	}
	
	/**
	 * @Title: evaluateDriver 
	 * @Description:  评价车主
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void evaluateDriver(String requestData, DataResponse dataResponse){
		
		ReqEvaluateDriver reqEvaluateDriver = JSONUtil.parseObject(requestData, ReqEvaluateDriver.class);
		
		super.orderCommentService.addOrderComment(reqEvaluateDriver, dataResponse);
	}
	
	/**
	 * @Title: exchangeInvitationCode 
	 * @Description: 
	 * @param     设定文件 
	 * @author YHQ 
	 * @return void    返回类型
	 */
	public void exchangeInvitationCode(String requestData, DataResponse dataResponse){
		
		ReqExchange reqExchange = JSONUtil.parseObject(requestData, ReqExchange.class);
		
		super.activityService.exchangeInvitationCode(reqExchange, dataResponse);
	}
	
}
